1. 首页 > 手游热门攻略

观察者如何用|云美一生手游攻略资讯网 观察者 kfk

作者:admin 更新时间:2025-08-06
摘要:观察者模式是一种设计模式,主要用于处理对象间的一对多依赖关系,当一个对象的状态发生变化时,所有依赖于它的对象都会得到通知并自动更新,以下是如何使用观察者模式的基本步骤: 定义观察者(Observer...,观察者如何用|云美一生手游攻略资讯网 观察者 kfk

 

观察者玩法是一种设计玩法,主要用于处理对象间的一对多依赖关系,当壹个对象的情形发生变化时,全部依赖于它的对象都会得到通知并自动更新,下面内容是怎样运用观察者玩法的基本流程:

定义观察者(Observer)

观察者通常一个接口或抽象类,它定义了更新自己的方式。

class Observer:
    def update(self, subject):
        pass

定义主题(Subject)

主题维护壹个观察者列表,并提供方式来添加、删除和通知观察者。

class Subject:
    def __init__(self):
        self._observers = []
    def register_observer(self, observer):
        self._observers.append(observer)
    def unregister_observer(self, observer):
        self._observers.remove(observer)
    def notify_observers(self):
        for observer in self._observers:
            observer.update(self)

实现具体观察者(Concrete Observer)

具体观察者实现update方式,当主题情形变化时,该方式会被调用。

class ConcreteObserver(Observer):
    def update(self, subject):
        print(f"Observer received notification from {subject.__class__.__name__}")

运用观察者玩法

创建主题对象,注册观察者,接着改变主题情形以通知观察者。

# 创建主题
subject = Subject()
# 创建观察者
observer1 = ConcreteObserver()
observer2 = ConcreteObserver()
# 注册观察者
subject.register_observer(observer1)
subject.register_observer(observer2)
# 改变主题情形,通知观察者
subject.notify_observers()

注意事项

  • 主题和观察者之间不应存在任何直接的依赖关系。
  • 观察者应该只依赖于主题的接口,而不是实现。
  • 观察者玩法适用于当对象间存在一对多关系,且需要通知全部依赖对象时。

一个简单的观察者玩法实现,在实际应用中,也许需要根据具体需求进行调整。